/**
 * 
 */
package at.ac.tuwien.swa075.telco.auc.dao.memory;

import java.util.HashMap;
import java.util.Map;

import at.ac.tuwien.swa075.telco.auc.AucException;
import at.ac.tuwien.swa075.telco.auc.dao.IProfileDAO;
import at.ac.tuwien.swa075.telco.auc.dao.ProfileTO;

/**
 * @author vovmj01
 * 
 */
public class MemoryProfileDAO implements IProfileDAO {
	private Map<String,ProfileTO> memoryDB;
	
	public MemoryProfileDAO() {
		 this.memoryDB = new HashMap<String, ProfileTO>();
	}

	public boolean deleteProfile(ProfileTO profile) throws AucException {
		if (!memoryDB.containsKey(profile.imsi)) {
			return false;
		}
		memoryDB.remove(profile.imsi);
		return true;
	}

	public ProfileTO findProfile(String imsi) throws AucException {
		if (!memoryDB.containsKey(imsi)) {
			return null;
		}
		return memoryDB.get(imsi);
	}

	public long insertProfile(ProfileTO profile) throws AucException {
		if (memoryDB.containsKey(profile.imsi)) {
			return memoryDB.get(profile.imsi).id;
		}
		profile.id = memoryDB.size();
		memoryDB.put(profile.imsi, profile);
		return profile.id;
	}

	public boolean updateProfile(ProfileTO profile) throws AucException {
		if (!memoryDB.containsKey(profile.imsi)) {
			return false;
		}
		memoryDB.put(profile.imsi, profile);
		return true;
	}
}
